代码 > 解决csharp xml序列化的hexadecimal value 0x00, is an invalid character问题
2025-04-11
最近在做xml序列化,发现这个问题。
一开始怀疑是源文件问题或者对象失效问题,拿着原文件不停删除行对比,发现具有随机性。
搞了几小时。
起床后灵机一动,是不是真有无效字符,立刻寻找\0字符串。
发现固定在原始数据解析的最后一个元素上。
然后再一查
是读文件的问题
之前用的
var body = new byte[fileStream.Length];
fileStream.Read(body, 0, (int)fileStream.Length);
不行
需要使用
ReadExactly
或者
var body=new StreamReader(fileStream,Encoding.UTF8).ReadToEnd();
的形式。
这命名,绝对属于踩到屎山了。
点击登录